The invention relates to remote controls and, more particularly, to the transmission of infrared (IR) control signals.
Currently, native remote controls, those that are delivered with the device they control, and universal remote controls, those either delivered with the device or available from third party providers, hold both the data and the hardware-dependent driver components for the IR control code in software in the local memory, resident within a single microprocessor integrated circuit. Upon command from the user to send a specific IR signal (occurring when the user presses a key on the remote control), the application software resident in the microprocessor moves the specific data control bytes from the internal memory to an internal register (the IR data register) which holds the IR data to be sent. Subsequently, the microprocessor""s application software generates the timing that sends the contents of the IR data register configured in the specific protocol required, out from one of the I/O pins, through an IR amplifier (which may be simply a pin driver inside the microprocessor or a transistor switch outside the microprocessor) and through the IR LED which converts the electrical signals into infrared light.
However, for future use, as the personal computer (PC) migrates into the family entertainment area and as the volume of data available to be stored in a universal remote control increases, making it more difficult to hold all IR codes in one, relatively small, memory, it becomes important to find a way in which the PC can be used to send IR control signals, too. For this application, it will be important to maximize the software component, where possible, and minimize the hardware component. The PC comes equipped with a large memory, a hard disk drive memory and other memory components far larger than that found in an infrared remote control. The reduced hardware will be cheaper to manufacture, reducing the cost of the ultimate product to the consumer. The separation is possible because all IR signals possess the same three elements. These three elements are the cycle frequency (or none) and its duty cycle (or single pulse width), the cycle transmit duration (or cycle count) of a carrier cycle burst, and the wait time before the start of a new carrier cycle burst (or pulse or no wait time). When these few characteristics are alone embodied in the hardware and the rest of the information is stored within the PC, then the hardware has been fully minimized and the software has been fully maximized. Furthermore, if the hardware is structured during the minimization process to retain these three elements, then it is very likely that the minimized hardware will correctly transmit any future IR signals that designers create, thus affording the technology a long life.
Therefore, an apparatus and method for transmitting IR control signals is needed which separates the control data words and the varying characteristics of the signal transmission itself from the actual hardware used in transmitting the IR signal, increasing the software component to hold the variable data in an IR signal and reducing the hardware component to hold only those elements of an IR signal that rarely, if ever, vary.
A process for maximizing a software component and minimizing a hardware component of an IR signal begins with the step of separating the software component from the hardware component by storing in software the variable data component of any and all IR signals.
The process further includes the development of a hardware component able to receive and store a minimum data set necessary to faithfully replicate any and all IR signals. At a minimum, the data set includes the frequency of a carrier (or no frequency, if no carrier is involved in the IR signal), the carrier duty cycle (or pulse width, if no carrier is involved in the IR signal), the carrier duration (in time or number of cycles, if any), and the wait time before a subsequent carrier burst and pulse is to be issued (or none).
The process finally includes the step of loading at least the minimum data set into the hardware component by the software component. This step includes the initiation of the IR signal by the hardware component when a first data set is loaded. It may also include the preloading by the software component of at least one buffer in the hardware component while an IR signal is in process to ensure IR signal continuity.